しがないOLのはじめてのMySQL
はじめに
お久しぶりです。クニ吉です。
この度、事務職から異動になりまして、今後は今までとはちょっと違った路線の投稿が増えると思います。これからもよろしくお願いします(^^)
さて、早速ですが、今回は「MySQL」について書いていきたいと思います。私自身が初めてなので、超初心者向けになります。プロの方は本サイトの他の記事を読むことをお勧めします。 ちなみに私はAccessでSQL文を書いたことがある程度の知識しかありません。
前提
本記事におけるMySQLのバージョンは、「5.7.17」です。
本ブログの構成
- MySQLとは
- MySQLのインストール
- データベース作成
- テーブル作成
- データ投入
- データ集計(SUM関数)
- まとめ
MySQLとは
MySQLの前提としてデータベースについてのお話をさらっと。
データベース(DB)とは、複数で共有、利用を行なったり、検索や蓄積、加工を容易にできるように整理されたデータの集合のことです。
データベース構造のひとつに「リレーショナルデータベース(RDB)」というのがあります。
リレーショナルデータベースは、「見出し」,「属性(カラム)」,「組(行)」といった表に似た構造でデータを管理します。
データには「キー」という一意の値を持たせ、このキーを利用して別々のデータ群を関係づけることで複数のデータを連結させることができます。データを連結させることにより、目的に応じた表(データ)を作ることができるのが、リレーショナルデータベースの最大の特徴となります。
このようなリレーショナルデータベースを管理するシステムが存在し、これを「リレーショナルデータベース管理システム(RDBMS:relational database management system)」と呼びます。「MySQL」はオープンソースのRDBMSのひとつで、データを作成したり、集計することができます。
MySQLのインストール
概要
では、MySQLのインストールを行います。今回はHomebrew(Mac)でのインストール手順になりますが、Homebrewをインストールしていない場合は、まずHomebrewのインストールから始めてください。
Homebrewとは:
Mac OS X上でソフトウェアのインストールを簡単に行えるようにするパッケージ管理システムのひとつです。
手順
1.ターミナルを開きます。
ターミナルとは:
Mac OS XをCUI(character user interface =要は全てを文字(コマンド)で操作をする画面のこと)で操作するアプリケーションのこと。例えば、ファイルを複製する時、通常はマウスでファイルを選択し、メニューから「ファイルを複製」を押してファイルを複製しますが、CUIでは「cpコマンド」をターミナルに打つことでファイルを複製することができます。
2.下記コマンドをターミナルに入力します。
$ brew update $ brew install mysql
3.インストールが始まります。インストールが終わったら以下のコマンドを入力し、インストールできているのかを確認します。
$ brew info mysql
結果:
このような表示結果が出ればOK。「5.7.17」というのはMySQLのバージョンです。
mysql: stable 5.7.17 (bottled) Open source relational database management system https://dev.mysql.com/doc/refman/5.7/en/ ~以下省略~
MySQLの起動と接続
表示結果が長かったので省略していますが、MySQLの接続方法などが表示されています。 例えば、以下のコマンドを入力するとMySQLを起動します
$ brew services start mysql
以下のコマンドを入力するとMySQLに接続します。
$ mysql -uroot
「uroot」とは、rootユーザーとしてログインすることを示しており、rootアカウントの初期パスワードは空の状態です。パスワードを設定するまでは誰でもパスワードなしでrootユーザーとしてMySQLに接続し、すべての権限を付与されます。
rootとは:
すべての権限を持ち、どんなことでもできるユーザーアカウントのこと。個人的には神様権限と呼んだりしてます。
データベース作成
概要
MySQLでは、まず「データベース」という箱を作り、データベースの中に複数のテーブルを作成します。 データベース→ExcelのBookのようなもの、テーブル→Excelのsheetのようなものをイメージすると近いような気がします。データベースも複数作成することができます。
手順
1.ターミナルからMySQLに接続します。(詳細は前述の「MySQLの起動と接続」を参照してください)
接続後、ターミナルの表示がmysql>
となっていればOKです。
$ mysql -uroot
2.CREATE DATABASE文でデータベースを作成します。
構文:CREATE DATABASE {データベース名};
以下のコマンドでは「sampledb」という名前のデータベースを作成します。
mysql> create database sampledb;
結果:
以下が表示されたらOKです。
「(0.01 sec)」というのは、処理時間を示しているので違っていても問題ありません。
Query OK, 1 row affected (0.01 sec)
3.SHOW DATABASES文で、データベースが作成されたかを確認します。
特に何かを指定するわけでもないので、そのまま打てばOKです。
構文:SHOW DATABASES;
mysql> show databases;
結果:
すべてのデータベースが表示されますのでsmpledb以外の複数のデータベースが存在していますが、先ほど作成したデータベース「sampledb」があることが確認できました。
+--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sampledb | | sys | +--------------------+ 5 rows in set (0.01 sec)
テーブル作成
概要
では、データベース(箱)を作成したので、作成したデータベースの中にテーブルを作成します。このテーブルが「MySQLとは」の項で記述した「表に似た構造でデータを管理する」もので、データを蓄積するための容れ物になります。
テーブル作成時には、データを入れるための形式を定義します。例えば、カラム1には数値を保存する、カラム2には文字列(テキスト)を保存する、カラム3には日付を保存する、といった保存データの形式を決めます。
このデータ形式のことを「データ型」と言います。
その他にNULL値(空)の格納を許可するかしないかなどを設定することができます。
手順
1.USE文で、テーブルを作成するデータベースを指定します。
構文:USE {データベース名};
mysql> use sampledb;
2.CREATE TABLE文で、新しいテーブルを作成します。
構文:CREATE TABLE {テーブル名}({カラム名} {データ型}, {カラム名} {データ型}, …);
今回は「id」,「item_name」,「price」という3つのカラムを持つ「item」という名称のテーブルを作成します。
mysql> create table item(id int, item_name varchar(20), price int);
結果:
以下が表示されたらOKです。
Query OK, 0 rows affected (0.04 sec)
3.SHOW TABLES文で、テーブルが作成されたかを確認します。
構文:SHOW TABLES FROM {データベース名};
mysql> show tables from sampledb;
結果:
先ほど作成したテーブル「item」があることが確認できました。
+------------------+ | Tables_in_sample | +------------------+ | item | +------------------+ 1 row in set (0.00 sec)
データ投入
概要
テーブルを作成しましたので、テーブルに格納するデータを入れていきます。この時、テーブル作成時に定義したデータ型(形式)に応じた値でないと、エラーになる場合があります。(例:整数型にテキスト型を格納しようとするなど)
手順
1.INSERT文で、データを追加します。
*テキスト型の場合は、「'」で文字列を囲みます。
構文:INSERT INTO {テーブル名}({カラム名1}, {カラム名2},…)VALUES({値1}, {値2},…);
mysql> insert into item(id, item_name, price)values(1, 'カエルのオルゴール', 3500);
結果:
以下のように表示されされたらOKです。
Query OK, 1 row affected (0.02 sec)
2.SELECT文でテーブルの中身を確認します。
構文:SELECT * FROM {テーブル名};
mysql> select * from item;
結果:
先ほど投入したデータがテーブルに格納されていることを確認できました。
+------+-----------------------------+-------+ | id | item_name | price | +------+-----------------------------+-------+ | 1 | カエルのオルゴール | 3500 | +------+-----------------------------+-------+
複数のデータを追加する場合
複数のデータを追加する場合は、以下のようにvalues
以降をカンマ区切りで続けて入力します。
(->は、改行しているだけで入力は不要です)
mysql> insert into item(id, item_name, price) -> values(2, 'カエルのTシャツ',1900),(3, 'カエルの指輪', 800), -> (4, 'カエルの靴下', 350);
確認結果:
mysql> select * from item; +------+-----------------------------+-------+ | id | item_name | price | +------+-----------------------------+-------+ | 1 | カエルのオルゴール | 3500 | | 2 | カエルのTシャツ | 1900 | | 3 | カエルの指輪 | 800 | | 4 | カエルの靴下 | 350 | +------+-----------------------------+-------+ 4 rows in set (0.00 sec)
データ集計(SUM関数)
概要
テーブルに4つのデータが格納されましたので、次はデータの集計を行います。 今回は、単純にテーブル内に存在している「price」の合計を算出しようと思います。 合計は「6550」になるはずです。
手順
1.SUM関数を使って、カラムの合計を算出します。
構文:SELECT SUM({合計を算出するカラム名}) FROM {テーブル名};
mysql> select sum(price) from item;
結果:
priceの合計が「6550」になってることが確認できました。
+------------+ | sum(price) | +------------+ | 6550 | +------------+ 1 row in set (0.00 sec)
まとめ
今回はMySQLってこんなことができるんだよーということで、どんなものなのかをイメージしやすいようにMySQLのインストールからデータの集計までの基本的な流れをざっと書いてみました。この他にもデータを削除したり、更新したり、もっと複雑な検索、集計方法があったりしますので、またこの続きを書きたいと思います。
それではまた ノシ